/* 
 * File:   types.h
 * Author: FENG Xu <fengxu1989@gmail.com>
 *
 * Created on May 29, 2012, 5:49 PM
 */

#ifndef TYPES_H
#define	TYPES_H

#ifdef	__cplusplus
extern "C" {
#endif

	#define LMAX 256
	/*
	 * liste symbole-poids (horizontale)
	 */
	struct _listeSP{
		unsigned char symbole;
		int poids;
		struct _listeSP* suivant;
	};
	typedef struct _listeSP* listeSP;
	
	/*
	 * liste ajout-poids (verticale)
	 */
	struct _ajout{
		listeSP tete;
		int poidsSomme;
		int nbSymboles;
	};
	typedef struct _ajout* ajout;
	typedef ajout tabAjouts[LMAX];
	
	/*
	 * table des longueurs
	 */
	struct _listeSL{
		unsigned char symbole;
		int longueur;
		struct _listeSL* suivant;
	};
	typedef struct _listeSL* listeSL;
	
	/*
	 * table des codes
	 */
	struct _listeSC{
		unsigned char symbole;
		unsigned char code;
		int longueur;
		struct _listeSC* suivant;
	};
	typedef struct _listeSC* listeSC;
	
	
#ifdef	__cplusplus
}
#endif

#endif	/* TYPES_H */

